변수의 선언,초기화,할당의 차이점은 무엇인가
#resource
#javascript
작성일:2025. 4. 17.
수정일:2025. 4. 20.
선언, 초기화, 할당 세 단계를 구분하는 것은 호이스팅과 시간적 사각지대(TDZ)같은 개념을 이해하는 데 기초가 된다. 변수가 어떻게 생성되고 언제 접근 가능한지를 정확히 아는것은 코드의 동작을 예측하고 오류를 피하는데에 중요하다.
-
선언(Declaration) 변수 이름을 자바스크립트 엔진에 등록하는 단계이다. 이 단계에서 해당 스코프는 참조할 식별자를 알게 된다. 예를 들어
let myVar;
은myVar
이라는 변수를 선언한다. -
초기화(Initialization) 선언된 변수를 위해 메모리 공간을 확보하고, 기본값으로
undefined
를 할당하는 단계이다.let
과const
는 선언 단계와 초기화 단계가 분리되어 있지만,var
은 선언과 동시에undefined
로 초기화된다. 이 때문에 호이스팅 작동시에 문제가 생긴다 -
할당(Assignment)
=
연산자를 사용하여 변수에 실제 값을 저장하는 단계이다.undefined
로 초기화된 변수에 구체적인 값을 넣어주는 과정이다. 예를 들어myVar = 10;
은myVar
변수에 10이라는 값을 할당한다.